//类与类之间的关系 继承后类与类之间的叫法  a类继承了b这个类  a叫子类 b类叫基类
(() => {
  class Person {
    name: string;
    age: number;
    gender: string;
    constructor(
      name: string = "小米",
      age: number = 18,
      gender: string = "女"
    ) {
      this.name = name;
      this.age = age;
      this.gender = gender;
    }
    sayHi(str: string) {
      console.log(`我是:${this.name},${str}`);
    }
  }
  class Students extends Person {
    constructor(name: string, age: number, gender: string) {
      super(name, age, gender);
    }
    sayHi() {
      console.log("学生类中的sayHi");

      super.sayHi("哈哈");
    }
  }
  const person = new Person();
  person.sayHi("gaga");
  const students = new Students("小甜甜", 17, "女");
  students.sayHi();
  //1类和类之间 如果有继承关系 需要extends关键字 2子类中可以调用父类中的构造函数 使用super关键字(包括调用父类中的实例方法  使用的也是super关键字)  3子类中可以重写父类中的方法
})();
